<?php

/*
 * отвечает за отправление сообщений
 */

class Control_SendAction extends Control_Action{
    public function setArgs($args = null) {
        if (null != $args) {
            $this->args = $args;
        }
        return $this;
    }

    public function setView($view) {
        if (null != $view) {
            $this->view = $view;
        }
        return $this;
    }

    public function run() {
        $t = Model_File::getSTime();
        if(Model_UserMapper::getCurrentUser($this->args['author'])&&isset($_SESSION['authUserId'])) { // если автор сообщения залогинившмйся юзер, то все ок, если нет, то переадрессация на главную
            $this->args['text'] = Control_Validator::textValid($this->args['text']);
            $id = $this->args['adressat'];
            if ($this->args['text'] == Model_Error::getTextError()) { //если текст не валиден - ошибка
                
                View_View::setError(Model_Error::getTextError());
                $_SESSION['time'] = Model_File::getTime($t);
                header("location: http://petrovland.site50.net/?control=user&$id");
            } else { //если текст валиден
                $this->args['date'] = date('d-M-o, G:i');
                
                $mesModel = new Model_Message($this->args);
                $mesMapper = new Model_MessageMapper();
                $res = ($mesMapper->saveMessage($mesModel))?true :false ;
                if ($res) {
                    $_SESSION['time'] = Model_File::getTime($t);
                    $_SESSION['memory'] = memory_get_usage();
                    header("location: http://petrovland.site50.net/?control=user&$id");
                } else {
                    $_SESSION['time'] = Model_File::getTime($t);
                    $_SESSION['memory'] = memory_get_usage();
                    header("location: http://petrovland.site50.net/?control=user&$id");
                }
            }
        } else { // если автор сообщения не авторизававщийся юзер, то переадрессация
            $_SESSION['time'] = Model_File::getTime($t);
            $_SESSION['memory'] = memory_get_usage();
            header("location: http://petrovland.site50.net");
        }
    }
}
